<?php

namespace app\admin\model\site;

use think\facade\Db;
use think\Model;

/**
 * Site
 */
class Site extends Model
{
    // 表主键
    protected $pk = 'site_id';

    // 表名
    protected $name = 'site';

    // 自动写入时间戳字段
    protected $autoWriteTimestamp = true;

    // 字段类型转换
    protected $type = [
        'expire_time' => 'timestamp:Y-m-d H:i:s',
    ];



    //删除前事件
    protected static function onBeforeDelete($model)
    {
        //后续需要验证站点是否被使用



    }


    /**
     * 删除后的事件
     * @param $model
     * @return void
     * @throws \think\db\exception\DbException
     */
    public static function onAfterDelete($model)
    {
        //关联删除站点管理员
        Db::name('admin')->where('site_id',$model->site_id)->delete();
        Db::name('admin_log')->where('site_id',$model->site_id)->delete();
        Db::name('admin_group')->where('site_id',$model->site_id)->delete();
        Db::name('admin_group_access')->where('site_id',$model->site_id)->delete();
    }




    public function siteGroup(): \think\model\relation\BelongsTo
    {
        return $this->belongsTo(\app\admin\model\site\Group::class, 'site_group_id', 'id');
    }
}